package com.scholarship.modules.admin.mapper;

import com.scholarship.modules.admin.dto.FeedbackListDto;
import com.scholarship.modules.admin.dto.FeedbackQueryDto;
import com.scholarship.modules.admin.entity.RewardFeedback;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author Z.J.H
 * @create 2021/9/5 15:11
 */
@Repository
public interface ARewardFeedbackMapper {

    /**
     * 插入或更新提交审核
     * @param rewardFeedback
     * @return
     */
    int insertAndUpdateSubmitApplication(@Param("feedback") RewardFeedback rewardFeedback);

    /**
     * 根据导入年份和除了各奖项得分状态批量更新总申请表的申请状态
     * @param importYear
     * @param applicationState  不包括状态
     * @param feedbackState
     * @return
     */
    int updateStatesByBarringApplicationState(String importYear,Integer applicationState,Integer feedbackState);

    /**
     * 通过用户id删除审核信息
     * @param userId
     */
    int deleteRewardFeedbackByUserId(String userId);

    /**
     * 通过userId获取当年申请详情
     * @param userId
     * @param year
     * @return
     */
    RewardFeedback getRewardFeedbackByUserId(String userId,String year);

    /**
     * 默认审核列表
     * @return  审核列表dto
     */
    List<FeedbackListDto> listFeedback();

    /**
     * 根据查询条件查询学生列表
     * @param feedbackQueryDto
     * @return
     * @throws Exception
     */
    List<FeedbackListDto> listFeedbackByQuery(@Param("query") FeedbackQueryDto feedbackQueryDto) throws Exception;

    /**
     * 根据搜索查询审核列表
     * @param searchStr 搜索框字符串(姓名、学号)
     * @return
     * @throws Exception
     */
    List<FeedbackListDto> listFeedbackBySearch(@Param("searchStr") String searchStr) throws Exception;

    /**
     * 查询所有审核提交年份
     * @return
     * @throws Exception
     */
    List<String> listSubmissionTime() throws Exception;

    /**
     * 查询所有提交状态
     * @return
     */
    List<String> listState();
}
